package org.springrain.selenium.entity;

import javax.persistence.Id;
import javax.persistence.Table;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.springrain.frame.annotation.WhereSQL;
import org.springrain.frame.entity.BaseEntity;
/**
 * TODO 在此加入类描述
 * @copyright {@link weicms.net}
 * @author springrain<Auto generate>
 * @version  2018-06-05 12:11:17
 * @see org.springrain.selenium.entity.Htmloperation
 */
@Table(name="tc_htmloperation")
public class Htmloperation  extends BaseEntity {
	
	private static final long serialVersionUID = 1L;

	//alias
	/*
	public static final String TABLE_ALIAS = "Htmloperation";
	public static final String ALIAS_ID = "ID";
	public static final String ALIAS_BUSINESSID = "业务Id";
	public static final String ALIAS_NAME = "动作的名称";
	public static final String ALIAS_OPERATIONTYPE = "类型:0引用节点,1.打开,2.赋值,3.单击,4.双击,5.switchTo,6.document,7.右键,8.悬浮,9.拖拽,10其他";
	public static final String ALIAS_OPERATIONXPATH = "需要操作的对象xpath";
	public static final String ALIAS_OPERATIONVALUE = "操作对象的值,如果是需要输入参数,会优先取值用户设置值";
	public static final String ALIAS_PARAMETER = "是否需要用户输入参数,0不需要,1需要,默认0";
	public static final String ALIAS_VALIDATEPROGRESS = "验证进度.1.验证前,2.验证中,3验证,4验证后,5.其他.      1验证前:这个状态的动作会作为下一个字段的前置条件执行一遍,例如 验证密码前,先把账号字段的值填充上,执行状态1的动作      一个测试用例应该只有一个3验证,3作为测试用例的验证结果.      4验证后是作为验证以后的处理,例如功能测试完成之后,进行退出的动作.      5.其他是独立于这些状态之外的情况,例如单页面应用,全ajax,是不需要再对字段赋值的.";
	public static final String ALIAS_VALIDATEMETHOD = "如果validateProgress为3的时候,校验方式,1=,2>,3>=,4<,5<=,6包含,7不等于,8以开头,9以结尾";
	public static final String ALIAS_WAITTIME = "操作等待时间,默认1000毫秒";
	public static final String ALIAS_CONDITIONSTR = "条件表达式的json字符串. 执行条件的Dto,同级的条件是一个list,例如 a==1&&b==2, 是一个list,两条数据. 如果是包含子条件,需要使用 listCondition 属性,例如 (a==1&&b==2)||c==3 就是 第一个list有两个ConditionDto,第一个ConditionDto里listCondition属性的值是两个ConditionDto";
	public static final String ALIAS_SORTNO = "排序.按照顺序执行操作";
	public static final String ALIAS_BAK1 = "bak1";
	public static final String ALIAS_BAK2 = "bak2";
	public static final String ALIAS_BAK3 = "bak3";
	public static final String ALIAS_BAK4 = "bak4";
	public static final String ALIAS_BAK5 = "bak5";
    */
	//date formats
	
	//columns START
	/**
	 * ID
	 */
	private java.lang.String id;
	/**
	 * 业务Id
	 */
	private java.lang.String businessId;
	/**
	 * 动作的名称
	 */
	private java.lang.String name;
	/**
	 * 类型:0引用节点,1.打开,2.赋值,3.单击,4.双击,5.switchTo,6.document,7.右键,8.悬浮,9.拖拽,10其他
	 */
	private java.lang.Integer operationType;
	/**
	 * 需要操作的对象xpath
	 */
	private java.lang.String operationXpath;
	/**
	 * 操作对象的值,如果是需要输入参数,会优先取值用户设置值
	 */
	private java.lang.String operationValue;
	/**
	 * 是否需要用户输入参数,0不需要,1需要,默认0
	 */
	private java.lang.Integer parameter;
	/**
	 * 验证进度.1.验证前,2.验证中,3验证,4验证后,5.其他.      1验证前:这个状态的动作会作为下一个字段的前置条件执行一遍,例如 验证密码前,先把账号字段的值填充上,执行状态1的动作      一个测试用例应该只有一个3验证,3作为测试用例的验证结果.      4验证后是作为验证以后的处理,例如功能测试完成之后,进行退出的动作.      5.其他是独立于这些状态之外的情况,例如单页面应用,全ajax,是不需要再对字段赋值的.
	 */
	private java.lang.Integer validateProgress;
	/**
	 * 如果validateProgress为3的时候,校验方式,1=,2>,3>=,4<,5<=,6包含,7不等于,8以开头,9以结尾
	 */
	private java.lang.Integer validateMethod;
	/**
	 * 操作等待时间,默认1000毫秒
	 */
	private java.lang.Integer waitTime;
	/**
	 * 条件表达式的json字符串. 执行条件的Dto,同级的条件是一个list,例如 a==1&&b==2, 是一个list,两条数据. 如果是包含子条件,需要使用 listCondition 属性,例如 (a==1&&b==2)||c==3 就是 第一个list有两个ConditionDto,第一个ConditionDto里listCondition属性的值是两个ConditionDto
	 */
	private java.lang.String conditionStr;
	/**
	 * 排序.按照顺序执行操作
	 */
	private java.math.BigDecimal sortno;
	/**
	 * bak1
	 */
	private java.lang.String bak1;
	/**
	 * bak2
	 */
	private java.lang.String bak2;
	/**
	 * bak3
	 */
	private java.lang.String bak3;
	/**
	 * bak4
	 */
	private java.lang.String bak4;
	/**
	 * bak5
	 */
	private java.lang.String bak5;
	//columns END 数据库字段结束
	
	//concstructor

	public Htmloperation(){
	}

	public Htmloperation(
		java.lang.String id
	){
		this.id = id;
	}

	//get and set
		/**
		 * ID
		 */
	public void setId(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.id = value;
	}
	
	
	
	/**
	 * ID
	 */
	@Id
     @WhereSQL(sql="id=:Htmloperation_id")
	public java.lang.String getId() {
		return this.id;
	}
		/**
		 * 业务Id
		 */
	public void setBusinessId(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.businessId = value;
	}
	
	
	
	/**
	 * 业务Id
	 */
     @WhereSQL(sql="businessId=:Htmloperation_businessId")
	public java.lang.String getBusinessId() {
		return this.businessId;
	}
		/**
		 * 动作的名称
		 */
	public void setName(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.name = value;
	}
	
	
	
	/**
	 * 动作的名称
	 */
     @WhereSQL(sql="name=:Htmloperation_name")
	public java.lang.String getName() {
		return this.name;
	}
		/**
		 * 类型:0引用节点,1.打开,2.赋值,3.单击,4.双击,5.switchTo,6.document,7.右键,8.悬浮,9.拖拽,10其他
		 */
	public void setOperationType(java.lang.Integer value) {
		this.operationType = value;
	}
	
	
	
	/**
	 * 类型:0引用节点,1.打开,2.赋值,3.单击,4.双击,5.switchTo,6.document,7.右键,8.悬浮,9.拖拽,10其他
	 */
     @WhereSQL(sql="operationType=:Htmloperation_operationType")
	public java.lang.Integer getOperationType() {
		return this.operationType;
	}
		/**
		 * 需要操作的对象xpath
		 */
	public void setOperationXpath(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.operationXpath = value;
	}
	
	
	
	/**
	 * 需要操作的对象xpath
	 */
     @WhereSQL(sql="operationXpath=:Htmloperation_operationXpath")
	public java.lang.String getOperationXpath() {
		return this.operationXpath;
	}
		/**
		 * 操作对象的值,如果是需要输入参数,会优先取值用户设置值
		 */
	public void setOperationValue(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.operationValue = value;
	}
	
	
	
	/**
	 * 操作对象的值,如果是需要输入参数,会优先取值用户设置值
	 */
     @WhereSQL(sql="operationValue=:Htmloperation_operationValue")
	public java.lang.String getOperationValue() {
		return this.operationValue;
	}
		/**
		 * 是否需要用户输入参数,0不需要,1需要,默认0
		 */
	public void setParameter(java.lang.Integer value) {
		this.parameter = value;
	}
	
	
	
	/**
	 * 是否需要用户输入参数,0不需要,1需要,默认0
	 */
     @WhereSQL(sql="parameter=:Htmloperation_parameter")
	public java.lang.Integer getParameter() {
		return this.parameter;
	}
		/**
		 * 验证进度.1.验证前,2.验证中,3验证,4验证后,5.其他.      1验证前:这个状态的动作会作为下一个字段的前置条件执行一遍,例如 验证密码前,先把账号字段的值填充上,执行状态1的动作      一个测试用例应该只有一个3验证,3作为测试用例的验证结果.      4验证后是作为验证以后的处理,例如功能测试完成之后,进行退出的动作.      5.其他是独立于这些状态之外的情况,例如单页面应用,全ajax,是不需要再对字段赋值的.
		 */
	public void setValidateProgress(java.lang.Integer value) {
		this.validateProgress = value;
	}
	
	
	
	/**
	 * 验证进度.1.验证前,2.验证中,3验证,4验证后,5.其他.      1验证前:这个状态的动作会作为下一个字段的前置条件执行一遍,例如 验证密码前,先把账号字段的值填充上,执行状态1的动作      一个测试用例应该只有一个3验证,3作为测试用例的验证结果.      4验证后是作为验证以后的处理,例如功能测试完成之后,进行退出的动作.      5.其他是独立于这些状态之外的情况,例如单页面应用,全ajax,是不需要再对字段赋值的.
	 */
     @WhereSQL(sql="validateProgress=:Htmloperation_validateProgress")
	public java.lang.Integer getValidateProgress() {
		return this.validateProgress;
	}
		/**
		 * 如果validateProgress为3的时候,校验方式,1=,2>,3>=,4<,5<=,6包含,7不等于,8以开头,9以结尾
		 */
	public void setValidateMethod(java.lang.Integer value) {
		this.validateMethod = value;
	}
	
	
	
	/**
	 * 如果validateProgress为3的时候,校验方式,1=,2>,3>=,4<,5<=,6包含,7不等于,8以开头,9以结尾
	 */
     @WhereSQL(sql="validateMethod=:Htmloperation_validateMethod")
	public java.lang.Integer getValidateMethod() {
		return this.validateMethod;
	}
		/**
		 * 操作等待时间,默认1000毫秒
		 */
	public void setWaitTime(java.lang.Integer value) {
		this.waitTime = value;
	}
	
	
	
	/**
	 * 操作等待时间,默认1000毫秒
	 */
     @WhereSQL(sql="waitTime=:Htmloperation_waitTime")
	public java.lang.Integer getWaitTime() {
		return this.waitTime;
	}
		/**
		 * 条件表达式的json字符串. 执行条件的Dto,同级的条件是一个list,例如 a==1&&b==2, 是一个list,两条数据. 如果是包含子条件,需要使用 listCondition 属性,例如 (a==1&&b==2)||c==3 就是 第一个list有两个ConditionDto,第一个ConditionDto里listCondition属性的值是两个ConditionDto
		 */
	public void setConditionStr(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.conditionStr = value;
	}
	
	
	
	/**
	 * 条件表达式的json字符串. 执行条件的Dto,同级的条件是一个list,例如 a==1&&b==2, 是一个list,两条数据. 如果是包含子条件,需要使用 listCondition 属性,例如 (a==1&&b==2)||c==3 就是 第一个list有两个ConditionDto,第一个ConditionDto里listCondition属性的值是两个ConditionDto
	 */
     @WhereSQL(sql="conditionStr=:Htmloperation_conditionStr")
	public java.lang.String getConditionStr() {
		return this.conditionStr;
	}
		/**
		 * 排序.按照顺序执行操作
		 */
	public void setSortno(java.math.BigDecimal value) {
		this.sortno = value;
	}
	
	
	
	/**
	 * 排序.按照顺序执行操作
	 */
     @WhereSQL(sql="sortno=:Htmloperation_sortno")
	public java.math.BigDecimal getSortno() {
		return this.sortno;
	}
		/**
		 * bak1
		 */
	public void setBak1(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.bak1 = value;
	}
	
	
	
	/**
	 * bak1
	 */
     @WhereSQL(sql="bak1=:Htmloperation_bak1")
	public java.lang.String getBak1() {
		return this.bak1;
	}
		/**
		 * bak2
		 */
	public void setBak2(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.bak2 = value;
	}
	
	
	
	/**
	 * bak2
	 */
     @WhereSQL(sql="bak2=:Htmloperation_bak2")
	public java.lang.String getBak2() {
		return this.bak2;
	}
		/**
		 * bak3
		 */
	public void setBak3(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.bak3 = value;
	}
	
	
	
	/**
	 * bak3
	 */
     @WhereSQL(sql="bak3=:Htmloperation_bak3")
	public java.lang.String getBak3() {
		return this.bak3;
	}
		/**
		 * bak4
		 */
	public void setBak4(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.bak4 = value;
	}
	
	
	
	/**
	 * bak4
	 */
     @WhereSQL(sql="bak4=:Htmloperation_bak4")
	public java.lang.String getBak4() {
		return this.bak4;
	}
		/**
		 * bak5
		 */
	public void setBak5(java.lang.String value) {
		    if(StringUtils.isNotBlank(value)){
			 value=value.trim();
			}
		this.bak5 = value;
	}
	
	
	
	/**
	 * bak5
	 */
     @WhereSQL(sql="bak5=:Htmloperation_bak5")
	public java.lang.String getBak5() {
		return this.bak5;
	}
	@Override
	public String toString() {
		return new StringBuilder()
			.append("ID[").append(getId()).append("],")
			.append("业务Id[").append(getBusinessId()).append("],")
			.append("动作的名称[").append(getName()).append("],")
			.append("类型:0引用节点,1.打开,2.赋值,3.单击,4.双击,5.switchTo,6.document,7.右键,8.悬浮,9.拖拽,10其他[").append(getOperationType()).append("],")
			.append("需要操作的对象xpath[").append(getOperationXpath()).append("],")
			.append("操作对象的值,如果是需要输入参数,会优先取值用户设置值[").append(getOperationValue()).append("],")
			.append("是否需要用户输入参数,0不需要,1需要,默认0[").append(getParameter()).append("],")
			.append("验证进度.1.验证前,2.验证中,3验证,4验证后,5.其他.      1验证前:这个状态的动作会作为下一个字段的前置条件执行一遍,例如 验证密码前,先把账号字段的值填充上,执行状态1的动作      一个测试用例应该只有一个3验证,3作为测试用例的验证结果.      4验证后是作为验证以后的处理,例如功能测试完成之后,进行退出的动作.      5.其他是独立于这些状态之外的情况,例如单页面应用,全ajax,是不需要再对字段赋值的.[").append(getValidateProgress()).append("],")
			.append("如果validateProgress为3的时候,校验方式,1=,2>,3>=,4<,5<=,6包含,7不等于,8以开头,9以结尾[").append(getValidateMethod()).append("],")
			.append("操作等待时间,默认1000毫秒[").append(getWaitTime()).append("],")
			.append("条件表达式的json字符串. 执行条件的Dto,同级的条件是一个list,例如 a==1&&b==2, 是一个list,两条数据. 如果是包含子条件,需要使用 listCondition 属性,例如 (a==1&&b==2)||c==3 就是 第一个list有两个ConditionDto,第一个ConditionDto里listCondition属性的值是两个ConditionDto[").append(getConditionStr()).append("],")
			.append("排序.按照顺序执行操作[").append(getSortno()).append("],")
			.append("bak1[").append(getBak1()).append("],")
			.append("bak2[").append(getBak2()).append("],")
			.append("bak3[").append(getBak3()).append("],")
			.append("bak4[").append(getBak4()).append("],")
			.append("bak5[").append(getBak5()).append("],")
			.toString();
	}
	@Override
	public int hashCode() {
		return new HashCodeBuilder()
			.append(getId())
			.toHashCode();
	}
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Htmloperation == false){
			return false;
		}
			
		if(this == obj){
			return true;
		}
		
		Htmloperation other = (Htmloperation)obj;
		return new EqualsBuilder()
			.append(getId(),other.getId())
			.isEquals();
	}
}

	
